<?xml version="1.0" encoding="utf-8" standalone="no"?>
<!--

	Open Financial Exchange Specification (c)1996-2003 ("Specification") by all of its publishers: 
	CheckFree Corp., Intuit Inc., and Microsoft Corporation. All rights reserved. 

	Revision History:

	Version	Date    	Editor Email Addr    		Short Description

	p18	2002-02-11  	altenburgd@businesslogic.com	Initial revision
        p20     2002-03-09      altenburgd@businesslogic.com    Renamed type 'SecurityInfo' to 'GeneralSecurityInfo'
                                                                Created abstract type 'SecurityInfo' 
                                                                    and made MutualFundInfo, StockInfo, OptionInfo, 
                                                                    DebtInfo, and OtherInfo to extend it
        p21     2002-03-17      altenburgd@businesslogic.com    Renamed SecurityInfo to AbstractSecurityInfo
        p21     2002-03-17      altenburgd@businesslogic.com    Changed elementFormDefault to "unqualified"
                                                                Changed namespace to "http://ofx.net/types/2003/04"
        p22     2003-03-24      altenburgd@businesslogic.com    Fixed typo in MutualFundInfo
        p23     2002-05-13      altenburgd@businesslogic.com    Bugfixes based on Intuit Schema QA
		RC4    2003-06-24      gil_clark@intuit.com             Added collapse to fixed length, non-string types and enums.
-->
<xsd:schema targetNamespace="http://ofx.net/types/2003/04" xmlns:ofx="http://ofx.net/types/2003/04" xmlns:xsd="http://www.w3.org/2001/XMLSchema" elementFormDefault="unqualified">
	<xsd:include schemaLocation="OFX_Common.xsd"/>
	<xsd:simpleType name="AssetClassEnum">
		<xsd:annotation>
			<xsd:documentation>
        The OFX element "ASSETCLASSENUM" is of type "AssetClassEnum"
      </xsd:documentation>
		</xsd:annotation>
		<xsd:restriction base="xsd:string">
			<xsd:whiteSpace value="collapse"/>
			<xsd:enumeration value="DOMESTICBOND"/>
			<xsd:enumeration value="INTLBOND"/>
			<xsd:enumeration value="LARGESTOCK"/>
			<xsd:enumeration value="SMALLSTOCK"/>
			<xsd:enumeration value="INTLSTOCK"/>
			<xsd:enumeration value="MONEYMRKT"/>
			<xsd:enumeration value="OTHER"/>
		</xsd:restriction>
	</xsd:simpleType>
	<xsd:simpleType name="CallTypeEnum">
		<xsd:annotation>
			<xsd:documentation>
        The OFX element "CALLTYPEENUM" is of type "CallTypeEnum"
      </xsd:documentation>
		</xsd:annotation>
		<xsd:restriction base="xsd:string">
			<xsd:whiteSpace value="collapse"/>
			<xsd:enumeration value="CALL"/>
			<xsd:enumeration value="PUT"/>
			<xsd:enumeration value="PREFUND"/>
			<xsd:enumeration value="MATURITY"/>
		</xsd:restriction>
	</xsd:simpleType>
	<xsd:simpleType name="CouponFrequencyEnum">
		<xsd:annotation>
			<xsd:documentation>
        The OFX element "COUPONFREQENUM" is of type "CouponFrequencyEnum"
      </xsd:documentation>
		</xsd:annotation>
		<xsd:restriction base="xsd:string">
			<xsd:whiteSpace value="collapse"/>
			<xsd:enumeration value="MONTHLY"/>
			<xsd:enumeration value="QUARTERLY"/>
			<xsd:enumeration value="SEMIANNUAL"/>
			<xsd:enumeration value="ANNUAL"/>
			<xsd:enumeration value="OTHER"/>
		</xsd:restriction>
	</xsd:simpleType>
	<xsd:simpleType name="DebtClassEnum">
		<xsd:annotation>
			<xsd:documentation>
        The OFX element "DEBTCLASSENUM" is of type "DebtClassEnum"
      </xsd:documentation>
		</xsd:annotation>
		<xsd:restriction base="xsd:string">
			<xsd:whiteSpace value="collapse"/>
			<xsd:enumeration value="TREASURY"/>
			<xsd:enumeration value="MUNICIPAL"/>
			<xsd:enumeration value="CORPORATE"/>
			<xsd:enumeration value="OTHER"/>
		</xsd:restriction>
	</xsd:simpleType>
	<xsd:simpleType name="DebtEnum">
		<xsd:annotation>
			<xsd:documentation>
        The OFX element "DEBTENUM" is of type "DebtEnum"
      </xsd:documentation>
		</xsd:annotation>
		<xsd:restriction base="xsd:string">
			<xsd:whiteSpace value="collapse"/>
			<xsd:enumeration value="COUPON"/>
			<xsd:enumeration value="ZERO"/>
		</xsd:restriction>
	</xsd:simpleType>
	<xsd:complexType name="DebtInfo">
		<xsd:annotation>
			<xsd:documentation>
        The OFX element "DEBTINFO" is of type "DebtInfo"
      </xsd:documentation>
		</xsd:annotation>
		<xsd:complexContent>
			<xsd:extension base="ofx:AbstractSecurityInfo">
				<xsd:sequence>
					<xsd:element name="PARVALUE" type="ofx:AmountType"/>
					<xsd:element name="DEBTTYPE" type="ofx:DebtEnum"/>
					<xsd:element name="DEBTCLASS" type="ofx:DebtClassEnum" minOccurs="0"/>
					<xsd:element name="COUPONRT" type="ofx:RateType" minOccurs="0"/>
					<xsd:element name="DTCOUPON" type="ofx:DateTimeType" minOccurs="0"/>
					<xsd:element name="COUPONFREQ" type="ofx:CouponFrequencyEnum" minOccurs="0"/>
					<xsd:element name="CALLPRICE" type="ofx:UnitPriceType" minOccurs="0"/>
					<xsd:element name="YIELDTOCALL" type="ofx:RateType" minOccurs="0"/>
					<xsd:element name="DTCALL" type="ofx:DateTimeType" minOccurs="0"/>
					<xsd:element name="CALLTYPE" type="ofx:CallTypeEnum" minOccurs="0"/>
					<xsd:element name="YIELDTOMAT" type="ofx:RateType" minOccurs="0"/>
					<xsd:element name="DTMAT" type="ofx:DateTimeType" minOccurs="0"/>
					<xsd:element name="ASSETCLASS" type="ofx:AssetClassEnum" minOccurs="0"/>
					<xsd:element name="FIASSETCLASS" type="ofx:GenericNameType" minOccurs="0"/>
				</xsd:sequence>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:simpleType name="EmptyType">
		<xsd:annotation>
			<xsd:documentation>
        The OFX element "EMPTY" is of type "EmptyType"
      </xsd:documentation>
		</xsd:annotation>
		<xsd:restriction base="xsd:string"/>
	</xsd:simpleType>
	<xsd:complexType name="FinancialInstitutionMutualFundAssetClass">
		<xsd:annotation>
			<xsd:documentation>
        The OFX element "FIMFASSETCLASS" is of type "FinancialInstitutionMutualFundAssetClass"
      </xsd:documentation>
		</xsd:annotation>
		<xsd:sequence>
			<xsd:element name="FIPORTION" type="ofx:FinancialInstitutionPortion" maxOccurs="unbounded"/>
		</xsd:sequence>
	</xsd:complexType>
	<xsd:complexType name="FinancialInstitutionPortion">
		<xsd:annotation>
			<xsd:documentation>
        The OFX element "FIPORTION" is of type "FinancialInstitutionPortion"
      </xsd:documentation>
		</xsd:annotation>
		<xsd:sequence>
			<xsd:element name="FIASSETCLASS" type="ofx:GenericNameType"/>
			<xsd:element name="PERCENT" type="ofx:RateType"/>
		</xsd:sequence>
	</xsd:complexType>
	<xsd:complexType name="MutualFundAssetClass">
		<xsd:annotation>
			<xsd:documentation>
        The OFX element "MFASSETCLASS" is of type "MutualFundAssetClass"
      </xsd:documentation>
		</xsd:annotation>
		<xsd:sequence>
			<xsd:element name="PORTION" type="ofx:Portion" maxOccurs="unbounded"/>
		</xsd:sequence>
	</xsd:complexType>
	<xsd:complexType name="MutualFundInfo">
		<xsd:annotation>
			<xsd:documentation>
        The OFX element "MFINFO" is of type "MutualFundInfo"
      </xsd:documentation>
		</xsd:annotation>
		<xsd:complexContent>
			<xsd:extension base="ofx:AbstractSecurityInfo">
				<xsd:sequence>
					<xsd:element name="MFTYPE" type="ofx:MutualFundTypeEnum" minOccurs="0"/>
					<xsd:element name="YIELD" type="ofx:RateType" minOccurs="0"/>
					<xsd:element name="DTYIELDASOF" type="ofx:DateTimeType" minOccurs="0"/>
					<xsd:element name="MFASSETCLASS" type="ofx:MutualFundAssetClass" minOccurs="0"/>
					<xsd:element name="FIMFASSETCLASS" type="ofx:FinancialInstitutionMutualFundAssetClass" minOccurs="0"/>
				</xsd:sequence>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:simpleType name="MutualFundTypeEnum">
		<xsd:annotation>
			<xsd:documentation>
        The OFX element "MFTENUM" is of type "MutualFundTypeEnum"
      </xsd:documentation>
		</xsd:annotation>
		<xsd:restriction base="xsd:string">
			<xsd:whiteSpace value="collapse"/>
			<xsd:enumeration value="OPENEND"/>
			<xsd:enumeration value="CLOSEEND"/>
			<xsd:enumeration value="OTHER"/>
		</xsd:restriction>
	</xsd:simpleType>
	<xsd:complexType name="OptionInfo">
		<xsd:annotation>
			<xsd:documentation>
        The OFX element "OPTINFO" is of type "OptionInfo"
      </xsd:documentation>
		</xsd:annotation>
		<xsd:complexContent>
			<xsd:extension base="ofx:AbstractSecurityInfo">
				<xsd:sequence>
					<xsd:element name="OPTTYPE" type="ofx:OptionTypeEnum"/>
					<xsd:element name="STRIKEPRICE" type="ofx:UnitPriceType"/>
					<xsd:element name="DTEXPIRE" type="ofx:DateTimeType"/>
					<xsd:element name="SHPERCTRCT" type="ofx:SharesPerType"/>
					<xsd:element name="SECID" type="ofx:SecurityId" minOccurs="0"/>
					<xsd:element name="ASSETCLASS" type="ofx:AssetClassEnum" minOccurs="0"/>
					<xsd:element name="FIASSETCLASS" type="ofx:GenericNameType" minOccurs="0"/>
				</xsd:sequence>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:simpleType name="OptionTypeEnum">
		<xsd:annotation>
			<xsd:documentation>
        The OFX element "OPTTYPEENUM" is of type "OptionTypeEnum"
      </xsd:documentation>
		</xsd:annotation>
		<xsd:restriction base="xsd:string">
			<xsd:whiteSpace value="collapse"/>
			<xsd:enumeration value="CALL"/>
			<xsd:enumeration value="PUT"/>
		</xsd:restriction>
	</xsd:simpleType>
	<xsd:complexType name="OtherInfo">
		<xsd:annotation>
			<xsd:documentation>
        The OFX element "OTHERINFO" is of type "OtherInfo"
      </xsd:documentation>
		</xsd:annotation>
		<xsd:complexContent>
			<xsd:extension base="ofx:AbstractSecurityInfo">
				<xsd:sequence>
					<xsd:element name="TYPEDESC" type="ofx:TypeDescriptionType" minOccurs="0"/>
					<xsd:element name="ASSETCLASS" type="ofx:AssetClassEnum" minOccurs="0"/>
					<xsd:element name="FIASSETCLASS" type="ofx:GenericNameType" minOccurs="0"/>
				</xsd:sequence>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:complexType name="Portion">
		<xsd:annotation>
			<xsd:documentation>
        The OFX element "PORTION" is of type "Portion"
      </xsd:documentation>
		</xsd:annotation>
		<xsd:sequence>
			<xsd:element name="ASSETCLASS" type="ofx:AssetClassEnum"/>
			<xsd:element name="PERCENT" type="ofx:RateType"/>
		</xsd:sequence>
	</xsd:complexType>
	<xsd:simpleType name="Rating">
		<xsd:annotation>
			<xsd:documentation>
        The OFX element "RATING" is of type "Rating"
      </xsd:documentation>
		</xsd:annotation>
		<xsd:restriction base="xsd:string">
			<xsd:maxLength value="10"/>
			<xsd:minLength value="1"/>
		</xsd:restriction>
	</xsd:simpleType>
	<xsd:complexType name="GeneralSecurityInfo">
		<xsd:annotation>
			<xsd:documentation>
        The OFX element "SECINFO" is of type "GeneralSecurityInfo"
      </xsd:documentation>
		</xsd:annotation>
		<xsd:sequence>
			<xsd:element name="SECID" type="ofx:SecurityId"/>
			<xsd:element name="SECNAME" type="ofx:SecurityNameType"/>
			<xsd:element name="TICKER" type="ofx:TickerType" minOccurs="0"/>
			<xsd:element name="FIID" type="ofx:FinancialInstitutionIdType" minOccurs="0"/>
			<xsd:element name="RATING" type="ofx:Rating" minOccurs="0"/>
			<xsd:element name="UNITPRICE" type="ofx:UnitPriceType" minOccurs="0"/>
			<xsd:element name="DTASOF" type="ofx:DateTimeType" minOccurs="0"/>
			<xsd:element name="CURRENCY" type="ofx:Currency" minOccurs="0"/>
			<xsd:element name="MEMO" type="ofx:MessageType" minOccurs="0"/>
		</xsd:sequence>
	</xsd:complexType>
	<xsd:complexType name="AbstractSecurityInfo" abstract="true">
		<xsd:sequence>
			<xsd:element name="SECINFO" type="ofx:GeneralSecurityInfo"/>
		</xsd:sequence>
	</xsd:complexType>
	<xsd:complexType name="SecurityList">
		<xsd:annotation>
			<xsd:documentation>
        The OFX element "SECLIST" is of type "SecurityList"
      </xsd:documentation>
		</xsd:annotation>
		<xsd:sequence>
			<xsd:choice minOccurs="0" maxOccurs="unbounded">
				<xsd:element name="MFINFO" type="ofx:MutualFundInfo"/>
				<xsd:element name="STOCKINFO" type="ofx:StockInfo"/>
				<xsd:element name="OPTINFO" type="ofx:OptionInfo"/>
				<xsd:element name="DEBTINFO" type="ofx:DebtInfo"/>
				<xsd:element name="OTHERINFO" type="ofx:OtherInfo"/>
			</xsd:choice>
		</xsd:sequence>
	</xsd:complexType>
	<xsd:simpleType name="StockEnum">
		<xsd:annotation>
			<xsd:documentation>
        The OFX element "STOCKENUM" is of type "StockEnum"
      </xsd:documentation>
		</xsd:annotation>
		<xsd:restriction base="xsd:string">
			<xsd:whiteSpace value="collapse"/>
			<xsd:enumeration value="COMMON"/>
			<xsd:enumeration value="PREFERRED"/>
			<xsd:enumeration value="CONVERTIBLE"/>
			<xsd:enumeration value="OTHER"/>
		</xsd:restriction>
	</xsd:simpleType>
	<xsd:complexType name="StockInfo">
		<xsd:annotation>
			<xsd:documentation>
        The OFX element "STOCKINFO" is of type "StockInfo"
      </xsd:documentation>
		</xsd:annotation>
		<xsd:complexContent>
			<xsd:extension base="ofx:AbstractSecurityInfo">
				<xsd:sequence>
					<xsd:element name="STOCKTYPE" type="ofx:StockEnum" minOccurs="0"/>
					<xsd:element name="YIELD" type="ofx:RateType" minOccurs="0"/>
					<xsd:element name="DTYIELDASOF" type="ofx:DateTimeType" minOccurs="0"/>
					<xsd:element name="ASSETCLASS" type="ofx:AssetClassEnum" minOccurs="0"/>
					<xsd:element name="FIASSETCLASS" type="ofx:GenericNameType" minOccurs="0"/>
				</xsd:sequence>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:simpleType name="TickerType">
		<xsd:annotation>
			<xsd:documentation>
        The OFX element "TICKER" is of type "TickerType"
      </xsd:documentation>
		</xsd:annotation>
		<xsd:restriction base="xsd:string">
			<xsd:maxLength value="32"/>
			<xsd:minLength value="1"/>
		</xsd:restriction>
	</xsd:simpleType>
	<xsd:simpleType name="TypeDescriptionType">
		<xsd:annotation>
			<xsd:documentation>
        The OFX element "TYPEDESC" is of type "TypeDescriptionType"
      </xsd:documentation>
		</xsd:annotation>
		<xsd:restriction base="xsd:string">
			<xsd:maxLength value="32"/>
			<xsd:minLength value="1"/>
		</xsd:restriction>
	</xsd:simpleType>
</xsd:schema>
